package cn.myjerry.thread.pro;
/**
 * 一个场景 共同的资源
 * 生产者消费者模式 信号灯发
 * wait() ： 等待，释放资源 sleep() ：不释放资源
 * notify()/notifyAll() ：唤醒
 * 与synchronized一同使用
 * @author Jerry
 *
 */
public class Movie {
	private String Pic;
	private boolean flag = true;
	
	public synchronized void play(String pic) {
		if(!flag) {	// 生产者等待
			try {
				this.wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		try {
			Thread.sleep(500);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		this.Pic = pic;
		// 生产完毕
		this.flag = !this.flag;
		this.notify();
	}

	public synchronized void watch() {
		if(flag) {	// 消费者等待
			try {
				this.wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		try {
			Thread.sleep(200);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println(Pic);
		// 消费完毕
		this.flag = !this.flag;
		this.notify();
	}
}
